/**
 * 
 */
package com.java.test.datacenter.service;

import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.java.test.activity.dto.ActivityManageInfo;
import com.java.test.audit.dto.RemitPaymentInfo;
import com.java.test.datacenter.dto.HaviorAllData;
import com.java.test.datacenter.dto.HaviorData;
import com.java.test.datacenter.dto.HomeAccountInfo;
import com.java.test.datacenter.dto.HomePageItem;
import com.java.test.datacenter.dto.PayInmentInfo;
import com.java.test.datacenter.dto.PaymentInfo;
import com.java.test.datacenter.dto.SumAccountList;
import com.java.test.user.dto.DepositInfo;
import com.java.test.user.dto.ReflectInfo;
import com.java.test.user.dto.RunWaterInfo;
import com.java.test.util.PageInfo;

/**
 * @author Administrator
 *
 */
public interface DataManageService {
	
	
	/**
	 * 首页数据统计
	 * @return
	 */
	public HomeAccountInfo selecthomeData(HomePageItem info);
	
	

	/**
	 * 统计数据处理
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public SumAccountList dealAcountData(LocalDateTime startTime, LocalDateTime endTime);

	// ========================= 出款统计

	public PageInfo<PaymentInfo> selectpaymentInfoList(PageInfo<PaymentInfo> page);

	/**
	 * 当天出款
	 * 
	 * @return
	 */
	public Double curToDaySumAmount(PaymentInfo info);

	/**
	 * 查詢明細
	 */
	public List<RemitPaymentInfo> selectremitInfoById(PaymentInfo info);

	/**
	 * 入款統計
	 * 
	 * @param page
	 * @return
	 */
	public PageInfo<PayInmentInfo> selectpaymentInInfoList(PageInfo<PayInmentInfo> page);

	/**
	 * 当天入款
	 * 
	 * @return
	 */
	public Double selectcurtoDayInamount(PayInmentInfo info);

	/**
	 * 入款统计明细
	 * 
	 * @param bankAcount
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public List<DepositInfo> selectdinfoBybankaccount(String bankAcount, LocalDateTime startTime, LocalDateTime endTime);

	/** 交易流水 */
	/**
	 * 
	 * 交易流水
	 * 
	 * @param page
	 * @return
	 */
	public JSONObject selectallRunwaterpage(PageInfo<RunWaterInfo> page);

	/**
	 * 查询当天投注统计
	 * 
	 * @param info
	 * @return
	 */
	public SumAccountList selectRunwaterCount(ActivityManageInfo infos);

	/**
	 * 
	 * 统计查询提现记录
	 * 
	 * @param page
	 * @return
	 */
	public PageInfo<ReflectInfo> selecAmoutReflect(PageInfo<ReflectInfo> page);

	/**
	 * 
	 * 统计查询提记录
	 * 
	 * @param page
	 * @return
	 */
	public PageInfo<DepositInfo> selecAmoutDeposit(PageInfo<DepositInfo> page);
	
	
	
	/**
	 * 查询行为统计
	 */
	public JSONObject selectHaviorcount(String startTime, String endTime);

	
	// 查询某一种行为统计图
	public List<HaviorData> selectHavior(String startTime, String endTime, int type);
	
	
	
	/**
	 * 查询所有统计
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public HaviorAllData selectHaviorexcel(String startTime, String endTime);

}
